package org.ace.dao.model;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PlayeritemExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer mysqlOffset;

    private Integer mysqlLength;

    public PlayeritemExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * @param mysqlOffset 指定返回记录行的偏移量<br> mysqlOffset= 5,mysqlLength=10;  // 检索记录行 6-15
     */
    public void setMysqlOffset(Integer mysqlOffset) {
        this.mysqlOffset = mysqlOffset;
    }

    public Integer getMysqlOffset() {
        return mysqlOffset;
    }

    /**
     * @param mysqlLength 指定返回记录行的最大数目<br> mysqlOffset= 5,mysqlLength=10;  // 检索记录行 6-15
     */
    public void setMysqlLength(Integer mysqlLength) {
        this.mysqlLength = mysqlLength;
    }

    public Integer getMysqlLength() {
        return mysqlLength;
    }

    protected abstract static class GeneratedCriteria {
        protected List<String> criteriaWithoutValue;

        protected List<Map<String, Object>> criteriaWithSingleValue;

        protected List<Map<String, Object>> criteriaWithListValue;

        protected List<Map<String, Object>> criteriaWithBetweenValue;

        protected GeneratedCriteria() {
            super();
            criteriaWithoutValue = new ArrayList<String>();
            criteriaWithSingleValue = new ArrayList<Map<String, Object>>();
            criteriaWithListValue = new ArrayList<Map<String, Object>>();
            criteriaWithBetweenValue = new ArrayList<Map<String, Object>>();
        }

        public boolean isValid() {
            return criteriaWithoutValue.size() > 0
                || criteriaWithSingleValue.size() > 0
                || criteriaWithListValue.size() > 0
                || criteriaWithBetweenValue.size() > 0;
        }

        public List<String> getCriteriaWithoutValue() {
            return criteriaWithoutValue;
        }

        public void setCriteriaWithoutValue(List<String> criteriaWithoutValue) {
            this.criteriaWithoutValue = criteriaWithoutValue;
        }

        public List<Map<String, Object>> getCriteriaWithSingleValue() {
            return criteriaWithSingleValue;
        }

        public void setCriteriaWithSingleValue(List<Map<String, Object>> criteriaWithSingleValue) {
            this.criteriaWithSingleValue = criteriaWithSingleValue;
        }

        public List<Map<String, Object>> getCriteriaWithListValue() {
            return criteriaWithListValue;
        }

        public void setCriteriaWithListValue(List<Map<String, Object>> criteriaWithListValue) {
            this.criteriaWithListValue = criteriaWithListValue;
        }

        public List<Map<String, Object>> getCriteriaWithBetweenValue() {
            return criteriaWithBetweenValue;
        }

        public void setCriteriaWithBetweenValue(List<Map<String, Object>> criteriaWithBetweenValue) {
            this.criteriaWithBetweenValue = criteriaWithBetweenValue;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteriaWithoutValue.add(condition);
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("value", value);
            criteriaWithSingleValue.add(map);
        }

        protected void addCriterion(String condition, List<? extends Object> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("values", values);
            criteriaWithListValue.add(map);
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            List<Object> list = new ArrayList<Object>();
            list.add(value1);
            list.add(value2);
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("condition", condition);
            map.put("values", list);
            criteriaWithBetweenValue.add(map);
        }

        public Criteria andItemidIsNull() {
            addCriterion("itemid is null");
            return (Criteria) this;
        }

        public Criteria andItemidIsNotNull() {
            addCriterion("itemid is not null");
            return (Criteria) this;
        }

        public Criteria andItemidEqualTo(Integer value) {
            addCriterion("itemid =", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidNotEqualTo(Integer value) {
            addCriterion("itemid <>", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidGreaterThan(Integer value) {
            addCriterion("itemid >", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidGreaterThanOrEqualTo(Integer value) {
            addCriterion("itemid >=", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidLessThan(Integer value) {
            addCriterion("itemid <", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidLessThanOrEqualTo(Integer value) {
            addCriterion("itemid <=", value, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidIn(List<Integer> values) {
            addCriterion("itemid in", values, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidNotIn(List<Integer> values) {
            addCriterion("itemid not in", values, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidBetween(Integer value1, Integer value2) {
            addCriterion("itemid between", value1, value2, "itemid");
            return (Criteria) this;
        }

        public Criteria andItemidNotBetween(Integer value1, Integer value2) {
            addCriterion("itemid not between", value1, value2, "itemid");
            return (Criteria) this;
        }

        public Criteria andGdcodeIsNull() {
            addCriterion("gdCode is null");
            return (Criteria) this;
        }

        public Criteria andGdcodeIsNotNull() {
            addCriterion("gdCode is not null");
            return (Criteria) this;
        }

        public Criteria andGdcodeEqualTo(Integer value) {
            addCriterion("gdCode =", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeNotEqualTo(Integer value) {
            addCriterion("gdCode <>", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeGreaterThan(Integer value) {
            addCriterion("gdCode >", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeGreaterThanOrEqualTo(Integer value) {
            addCriterion("gdCode >=", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeLessThan(Integer value) {
            addCriterion("gdCode <", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeLessThanOrEqualTo(Integer value) {
            addCriterion("gdCode <=", value, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeIn(List<Integer> values) {
            addCriterion("gdCode in", values, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeNotIn(List<Integer> values) {
            addCriterion("gdCode not in", values, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeBetween(Integer value1, Integer value2) {
            addCriterion("gdCode between", value1, value2, "gdcode");
            return (Criteria) this;
        }

        public Criteria andGdcodeNotBetween(Integer value1, Integer value2) {
            addCriterion("gdCode not between", value1, value2, "gdcode");
            return (Criteria) this;
        }

        public Criteria andCountIsNull() {
            addCriterion("count is null");
            return (Criteria) this;
        }

        public Criteria andCountIsNotNull() {
            addCriterion("count is not null");
            return (Criteria) this;
        }

        public Criteria andCountEqualTo(Integer value) {
            addCriterion("count =", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotEqualTo(Integer value) {
            addCriterion("count <>", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountGreaterThan(Integer value) {
            addCriterion("count >", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountGreaterThanOrEqualTo(Integer value) {
            addCriterion("count >=", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountLessThan(Integer value) {
            addCriterion("count <", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountLessThanOrEqualTo(Integer value) {
            addCriterion("count <=", value, "count");
            return (Criteria) this;
        }

        public Criteria andCountIn(List<Integer> values) {
            addCriterion("count in", values, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotIn(List<Integer> values) {
            addCriterion("count not in", values, "count");
            return (Criteria) this;
        }

        public Criteria andCountBetween(Integer value1, Integer value2) {
            addCriterion("count between", value1, value2, "count");
            return (Criteria) this;
        }

        public Criteria andCountNotBetween(Integer value1, Integer value2) {
            addCriterion("count not between", value1, value2, "count");
            return (Criteria) this;
        }

        public Criteria andGridIsNull() {
            addCriterion("grid is null");
            return (Criteria) this;
        }

        public Criteria andGridIsNotNull() {
            addCriterion("grid is not null");
            return (Criteria) this;
        }

        public Criteria andGridEqualTo(Integer value) {
            addCriterion("grid =", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridNotEqualTo(Integer value) {
            addCriterion("grid <>", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridGreaterThan(Integer value) {
            addCriterion("grid >", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridGreaterThanOrEqualTo(Integer value) {
            addCriterion("grid >=", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridLessThan(Integer value) {
            addCriterion("grid <", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridLessThanOrEqualTo(Integer value) {
            addCriterion("grid <=", value, "grid");
            return (Criteria) this;
        }

        public Criteria andGridIn(List<Integer> values) {
            addCriterion("grid in", values, "grid");
            return (Criteria) this;
        }

        public Criteria andGridNotIn(List<Integer> values) {
            addCriterion("grid not in", values, "grid");
            return (Criteria) this;
        }

        public Criteria andGridBetween(Integer value1, Integer value2) {
            addCriterion("grid between", value1, value2, "grid");
            return (Criteria) this;
        }

        public Criteria andGridNotBetween(Integer value1, Integer value2) {
            addCriterion("grid not between", value1, value2, "grid");
            return (Criteria) this;
        }

        public Criteria andGetitemidIsNull() {
            addCriterion("getItemid is null");
            return (Criteria) this;
        }

        public Criteria andGetitemidIsNotNull() {
            addCriterion("getItemid is not null");
            return (Criteria) this;
        }

        public Criteria andGetitemidEqualTo(Integer value) {
            addCriterion("getItemid =", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidNotEqualTo(Integer value) {
            addCriterion("getItemid <>", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidGreaterThan(Integer value) {
            addCriterion("getItemid >", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidGreaterThanOrEqualTo(Integer value) {
            addCriterion("getItemid >=", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidLessThan(Integer value) {
            addCriterion("getItemid <", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidLessThanOrEqualTo(Integer value) {
            addCriterion("getItemid <=", value, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidIn(List<Integer> values) {
            addCriterion("getItemid in", values, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidNotIn(List<Integer> values) {
            addCriterion("getItemid not in", values, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidBetween(Integer value1, Integer value2) {
            addCriterion("getItemid between", value1, value2, "getitemid");
            return (Criteria) this;
        }

        public Criteria andGetitemidNotBetween(Integer value1, Integer value2) {
            addCriterion("getItemid not between", value1, value2, "getitemid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }
}